breaking windows

introduction

The paradigm of the modern user interface is simple: every UI element is a rectangular window. The screen is divided hierarchically into large and small rectangular regions, each contained within another. All is in order, well-behaved, and conceptually simple.

The simplicity of this paradigm allows for runtime rendering optimizations and makes the paradigm thrive since the era of low hardware graphics performance. The paradigm is simple, but is it simplistic? If it is simplistic, then with more computing power, this paradigm can no longer be justified based only on the optimizations that it permits. I believe that the drawbacks of this paradigm that have previously been compromised in the name of performance should now be reconsidered.

 

Where the windowing paradigm fails is subtle. With the proliferation of windowing toolkits and visual form designers, it is hard to see the drawbacks of the paradigm. But it is in this proliferation that its drawbacks hide. The windowing paradigm is so popular and its abstractions have been made so easy to adopt that thinking outside of these abstractions has become almost inconceivable. Talking about UIs means talking about windows. Laying out UIs means arranging windows inside one another. This is the modus operandi in the UI world, and thinking outside of the box means trouble, big trouble, in implementation.

It is certainly easy to drag and drop predefined UI elements about in a visual form designer. However, when one attempts to incorporate a non-standard UI element, of one's own creative imagination, one is immediately thrown into the pixel world, full of graphics subsystem calls, z-order consideration, graphics context optimizations, clippings, bitmap formats, brush modes, etc.

Even if a software designer becomes inspired after reading up on research about pie menus, she is probably still reluctant to experiment with pie menus since programming a pie menu interface is very costly. Making a circular window onto which one can paint a menu is itself a whole adventure. Hittesting a pie menu is not trivial, either. And making the Alt key (in Windows) respond by showing a pie menu needs much hunting around the windowing subsystem API documentation.

 

On this website, I'd like to present several sample UIs that are hard to make with the existing UI frameworks, toolkits, and visual form designers. These sample UIs might not be usable as they are presented, but they are intended to provoke thoughts on what's possible once the windowing paradigm is broken.

Let's take all of our assumptions about existing desktop UIs and throw them out the window!

 

 

by David Huynh